package com.java.datastructures.cyclelinkedlist;

/**
 * 一个节点
 * @author wangning
 * @create 2021-06-01 21:11
 */

public class LoopNode {
	//节点内容
	int data;
	//下一个节点
	LoopNode next = this;
	public LoopNode(int data) {
		this.data = data;
	}

	//获取下一个节点
	public LoopNode next() {

		return this.next;

	}

	//获取节点中的数据
	public int getData() {
		return this.data;
	}

	//当前节点是否是最后一个节点
	public boolean isLast() {
		return next == null;
	}

	//删除下一个节点
	public void removeNext() {
		//先取出下下一个节点
		LoopNode newNext = this.next.next;
		//把下下一个节点设置为当前节点的写一个节点，这样就完成了删除
		this.next = newNext;
	}

	//插入一个节点作为当前节点的下一个节点，因为是一个单链表，所以我们只能插入到后面
	public void after(LoopNode node) {
		//取出下一个节点，作为下下一个节点
		LoopNode nextNext = next;
		//把新节点作为当前节点的下一个节点
		this.next = node;
		//把下下一个节点设置为新节点的下一个节点
		next.next = nextNext;
	}


}
